Channel decoders that are commonly used include a Viterbi algorithm (VA) decoder and a list Viterbi algorithm (LVA) decoder.
A common VA decoder selects an optimal path from all possible paths on a grid graph, and outputs an information sequence corresponding to the optimal path as a decoding result. An LVA decoder is an enhanced Viterbi decoding algorithm decoder using a cyclic redundancy check (CRC) for an auxiliary decision, and a basic principle is: decoding sequences corresponding to multiple candidate paths are output, a CRC check is separately performed on these decoding sequences, and a decoding sequence whose CRC check result is correct is selected as a final decoding result; and if none of the decoding sequences corresponding to all the paths passes the CRC check, a decoding sequence of an optimal path is output as a result. A parallel list Viterbi decoding algorithm (PLVA) decoder refers to a parallel LVA decoder, which can select a path whose CRC check result is correct from multiple paths, and has better performance than the common VA decoder that selects only an optimal path. A larger quantity of paths searched by the PLVA decoder indicates better decoding performance of the PLVA decoder and also brings heavier processing load on the PLVA decoder. Generally, for example, a PLVA4 decoder is a decoder that searches four paths, a PLVA64 decoder is a decoder that searches 64 paths, and decoding performance of the PLVA64 decoder is better than that of the PLVA4 decoder.
In the Universal Mobile Telecommunications System (UMTS), an adaptive multi-rate (AMR) speech is divided into three substreams: substreams A, B and C. Importance of the substream A is highest, and a CRC check is attached to a tail of a data block of the substream A. Importance of the substreams B/C is relatively low, and data has no CRC check. A channel decoder is deployed on a NodeB, separately decodes the substreams AB/C, and performs a CRC check on the substream A. In the prior art, the NodeB generally uses a VA to perform decoding, and in order to achieve better decoding performance, deployment of a PLVA may be considered. However, the PLVA needs high algorithm overheads, and therefore consumes much processing performance of the NodeB if the PLVA is deployed on the NodeB.